package net.y2t72.microblog.dao.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.jsp.jstl.sql.Result;

import net.y2t72.microblog.bean.District;
import net.y2t72.microblog.dao.DistrictDao;
import net.y2t72.microblog.util.StringUtil;

/**
 * 地区表数据访问实现类
 * @author Administrator
 *
 */

public class DistrictDaoImpl implements DistrictDao {
	
	
	

	@Override
	/**
	 * 查询省份
	 * @return	地区信息集合
	 * @author 余坚良
	 */
	public List<District> getList() {
		String sql = "select id,name from district where layer = 1";
		Result result = BaseDao.getInstance().executeQuery(sql, null);
		
		//创建集合
		List<District> list = null;
		
		//处理结果
		if(result != null && result.getRowCount() > 0){
			list = new ArrayList<District>();
			for (int i = 0; i < result.getRowCount(); i++) {
				@SuppressWarnings("rawtypes")
				Map map = result.getRows()[i];
				
				//创建District
				District district = new District(StringUtil.parseInt(map.get("id")), 
						StringUtil.parseString(map.get("name")).trim());
				//添加元素
				list.add(district);
			}
		}
		return list;
	}

	@Override
	/**
	 * 查询省份对应的城市
	 * @param upid	父级地区id
	 * @return 省份对应的城市
	 * @author 余坚良	
	 */
	public List<String> getList(int upid) {
		String sql ="select name from district where upid=?";
		Object[] param = {upid};
		Result result = BaseDao.getInstance().executeQuery(sql, param);
		
		//创建集合
		List<String> list = null;
		
		//处理结果
		if (result != null && result.getRowCount() > 0) {
			list = new ArrayList<String>();
			for (int i = 0; i < result.getRowCount(); i++) {
				@SuppressWarnings("rawtypes")
				Map map = result.getRows()[i];
				
				//添加元素
				list.add(StringUtil.parseString(map.get("name")).trim());
			}
		}
		return list;
	}


	/**
	 *  查询省份
	 * @return	地区信息集合
	 * @author  任小斌
	 */
	public List<District> findProvince(){
		
		// 创建List对象，存储城市对象
		List<District> list = new ArrayList<District>();
		
		// 拼写SQL语句
		String sql = "select id,name from district where upid=0 ";
		
		// 执行查询操作
		Result result = BaseDao.getInstance().executeQuery(sql, null);
		
		// 处理结果
		for(int i=0;i<result.getRowCount();i++){
			
			// 创建MAP对象
			@SuppressWarnings("rawtypes")
			Map map = result.getRows()[i];
			
			// 创建城市级联对象
			District dt = new District();
			
			dt.setId(StringUtil.parseInt(map.get("id")));
			
			dt.setName(StringUtil.parseString(map.get("name")));
			
			dt.setLayer(StringUtil.parseInt(map.get("layer")));
			
			dt.setUpid(StringUtil.parseInt(map.get("upid")));
			
			// 添加城市对象
			list.add(dt);	
		}
		// 返回查询的集合
		return list;
		
	}
	
	/**
	 *  查询省市对应的城市
	 * @param provinceid	省市的ID
	 * @return 				省份对应的城市
	 * @author 				任小斌
	 */
	public List<District> findCity(int provinceid){
		
		// 创建List对象，存储城市对象
		List<District> list = new ArrayList<District>();
		
		// 拼写SQL语句，一级标题Id查询
		String sql = "select  name from district where upid= "+provinceid;
		
		// 执行查询操作
		Result result = BaseDao.getInstance().executeQuery(sql, null);
		
		// 处理结果
		for(int i=0;i<result.getRowCount();i++){
			
			// 创建MAP对象
			@SuppressWarnings("rawtypes")
			Map map = result.getRows()[i];
			
			// 创建城市级联对象
			District dt = new District();
			
			dt.setName(StringUtil.parseString(map.get("name")));
			
			// 添加城市对象
			list.add(dt);	
		}
		// 返回查询的集合
		return list;
	}

}
